/********************************************************************************
协议版本：v1.4
修改时间：2024.02.23
********************************************************************************/
#ifndef _LF_PROTOCOL_DEF_H_
#define _LF_PROTOCOL_DEF_H_


/***********************产品类型定义***********************************************/
#define LF_TYPE_MOTOR               0x00        // 电机
#define LF_TYPE_HAIR_DRYER          0x01        // 吹风机
#define LF_TYPE_TOOTHBRUSH          0x02        // 电动牙刷
#define LF_TYPE_TABLE_LAMP          0x03        // 台灯
#define LF_TYPE_MAKEUP_MIRROR       0x04        // 化妆镜 


/************************命令号定义***********************************************/
// 电机功能
#define CMD_MOTOR_CALIBRA           0x0000      // 电机校准
#define CMD_MOTOR_STA               0x0001      // 电机状态
#define CMD_MOTOR_WORK_VIB          0x0002		// 工作震动
#define CMD_MOTOR_KEY_VIB           0x0003      // 按键震动
#define CMD_MOTOR_TONGUE            0x0004      // 舌苔
#define CMD_MOTOR_MUSIC	            0x0005      // 音乐指令
#define CMD_MOTOR_NTC_TEMP	        0x0006      // 电机NTC温度
#define CMD_MOTOR_PARA	        	0x0007      // 电机参数


// 通用功能
#define CMD_FACTORY_SETTINGS        0x0100      // 恢复出厂设置参数
#define CMD_RESET_SYSTEM            0x0101      // 系统复位
#define CMD_PRODUCT_MODEL           0x0102      // 产品型号
#define CMD_DEVICE_INFO             0x0103      // 设备信息
#define CMD_FW_VERSION              0x0104      // 版本号
#define CMD_REAL_TIME               0x0105      // 实时时间
#define CMD_BATTERY_LEVEL           0x0106      // 电池电量
#define CMD_CHARGE_STA              0x0107      // 充电状态
#define CMD_ON_OFF                  0x0108      // 开关机
#define CMD_MODE                    0x0109      // 模式
#define CMD_DEVICE_NAME             0x010A      // 设备名称 
#define CMD_HISTORY_DATA            0x010B      // 历史数据
#define CMD_VIB_REMINDER            0x010C      // 震动提醒
#define CMD_DEVICE_UUID             0x010D      // 设备UUID


// 牙刷功能
#define CMD_TB_BRUSHING_TIME        0x0200      // 刷牙时长
#define CMD_TB_DEFAULT_PARA         0x0201      // 默认模式初始参数
#define CMD_TB_AIRPLANE_MODE        0x0202      // 飞行模式
#define CMD_HIGH_FRE_ONOFF          0x0203      // 高频模式开关
#define CMD_URGENCY_ONOFF           0x0204      // 设置应急模式
#define CMD_REGION_SET              0x0205      // 设置国家区域


// 台灯功能
#define CMD_TL_BRIGHTNESS          	0x0301      // 主灯亮度
#define CMD_TL_COLOR_TEMP           0x0302      // 主灯色温
#define CMD_TL_TIMER_INFO           0x0303      // 定时器功能
#define CMD_TL_TIMER_ONOFF          0x0304      // 定时器开关
#define CMD_TL_TIMER_DEL            0x0305      // 删除定时器
#define CMD_TL_SYNC_SYSTEM          0x0306      // 同步系统状态
#define CMD_TL_MODE_AUTO            0x0307      // 自动调光
#define CMD_TL_MODE_SEAT_DETECT     0x0308      // 入座检测
#define CMD_TL_BACK_BRIGHTNESS      0x0309      // 背光亮度
#define CMD_TL_BACK_COLOR_TEMP      0x030A      // 背光色温


// 化妆镜功能
#define CMD_MM_POWER_ON         	0x0400      // 上电开机
#define CMD_MM_WORK_MODE         	0x0401      // 工作模式
#define CMD_MM_MAIN_ONOFF         	0x0402      // 前灯开关
#define CMD_MM_MAIN_BRIGHTNESS      0x0403      // 前灯亮度
#define CMD_MM_MAIN_COLOR           0x0404      // 前灯色温
#define CMD_MM_BACK_ONOFF         	0x0405      // 背灯开关
#define CMD_MM_BACK_BRIGHTNESS      0x0406      // 背灯亮度
#define CMD_MM_BACK_COLOR           0x0407      // 背灯色温
#define CMD_MM_SCENE_SELECT			0x0408      // 场景选择  
#define CMD_MM_SCENE_RESET          0x0409		// 恢复场景默认值
#define CMD_MM_RADAR_ONOFF      	0x040A      // 雷达开关
#define CMD_MM_RADAR_DIS      		0x040B      // 雷达距离
#define CMD_MM_RADAR_TIME      		0x040C      // 雷达时间
#define CMD_MM_BEEP_ONOFF      		0x040D      // 蜂鸣器开关
#define CMD_MM_IMU_CALIB            0x040E      // 陀螺仪校准
#define CMD_MM_TIMER_ONOFF          0x040F      // 定时开关
#define CMD_MM_TIMER_TIME           0x0410      // 定时时间


// 无线升级和调试		
#define CMD_UPGRADE_REQUEST         0x3000      // 无线升级请求命令
#define CMD_UPGRADE_START           0x3001      // 无线升级开始命令
#define CMD_UPGRADE_DATA            0x3002      // 无线升级数据传输
#define CMD_UPGRADE_END             0x3003      // 无线升级结束命令
#define CMD_DEBUG_MODE          	0x3004      // 调试模式
#define CMD_FAULT_CODE              0x3005      // 故障码



/************************故障码定义***********************************************/
typedef enum
{
	ERR_NONE = 0x00,            // 无故障		
	
	ERR_MOTOR_PHASE_LOSS,       // 电机缺相
	ERR_MOTOR_OP_AMP_BIAS,      // 电机MCU运放偏置故障 
	ERR_MOTOR_STALL,            // 电机堵转故障(电流大) 
	ERR_MOTOR_OVER_TEMP,        // 过温故障
	
	ERR_OVER_CURRENT = 0x20,    // 过流故障
	ERR_OVER_CVOLTAGE,          // 过压故障
	ERR_UNDER_CVOLTAGE,         // 欠压故障 
	
	ERR_HALL = 0x30,            // 霍尔板故障 
	ERR_UART_COMM,              // 串口通信故障  
}errCode_e;


/************************状态码定义***********************************************/
typedef enum
{
	STA_SUCCESS = 0,            // 成功		
	STA_FAILURE,                // 失败
	STA_BUSY,                   // 忙状态
	STA_PARA_ERROR,             // 参数错误
	STA_NOT_SUPPORT,            // 不支持
	STA_LENGHT_FAILED,          // 数据长度不对
	STA_CRC_FAILED,             // CRC校验失败 
	STA_SAME_PACKAGE,           // 同包数据
}staCode_e;


#endif
